package org.mokusakura.domain.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class AlipayNotifyParam implements Serializable {

    private String appId;
    private String tradeNo; // 支付宝交易凭证号
    private String outTradeNo; // 原支付请求的商户订单号
    private String outBizNo; // 商户业务ID，主要是退款通知中返回退款申请的流水号
    private String buyerId; // 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字
    private String buyerLogonId; // 买家支付宝账号
    private String sellerId; // 卖家支付宝用户号
    private String sellerEmail; // 卖家支付宝账号
    private String tradeStatus; // 交易目前所处的状态，见交易状态说明
    private BigDecimal totalAmount; // 本次交易支付的订单金额
    private BigDecimal receiptAmount; // 商家在交易中实际收到的款项
    private BigDecimal buyerPayAmount; // 用户在交易中支付的金额
    private BigDecimal refundFee; // 退款通知中，返回总退款金额，单位为元，支持两位小数
    private String subject; // 商品的标题/交易标题/订单标题/订单关键字等
    private String body; // 该订单的备注、描述、明细等。对应请求时的body参数，原样通知回来
    private Date gmtCreate; // 该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss
    private Date gmtPayment; // 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss
    private Date gmtRefund; // 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S
    private Date gmtClose; // 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss
    private String fundBillList; // 支付成功的各个渠道金额信息,array
    private String passbackParams; // 公共回传参数，如果请求时传递了该参数，则返回给商户时会在异步通知时将该参数原样返回。

    public String getAppId() {
        return appId;
    }

    public AlipayNotifyParam setAppId(String appId) {
        this.appId = appId;
        return this;
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public AlipayNotifyParam setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
        return this;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public AlipayNotifyParam setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
        return this;
    }

    public String getOutBizNo() {
        return outBizNo;
    }

    public AlipayNotifyParam setOutBizNo(String outBizNo) {
        this.outBizNo = outBizNo;
        return this;
    }

    public String getBuyerId() {
        return buyerId;
    }

    public AlipayNotifyParam setBuyerId(String buyerId) {
        this.buyerId = buyerId;
        return this;
    }

    public String getBuyerLogonId() {
        return buyerLogonId;
    }

    public AlipayNotifyParam setBuyerLogonId(String buyerLogonId) {
        this.buyerLogonId = buyerLogonId;
        return this;
    }

    public String getSellerId() {
        return sellerId;
    }

    public AlipayNotifyParam setSellerId(String sellerId) {
        this.sellerId = sellerId;
        return this;
    }

    public String getSellerEmail() {
        return sellerEmail;
    }

    public AlipayNotifyParam setSellerEmail(String sellerEmail) {
        this.sellerEmail = sellerEmail;
        return this;
    }

    public String getTradeStatus() {
        return tradeStatus;
    }

    public AlipayNotifyParam setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
        return this;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public AlipayNotifyParam setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
        return this;
    }

    public BigDecimal getReceiptAmount() {
        return receiptAmount;
    }

    public AlipayNotifyParam setReceiptAmount(BigDecimal receiptAmount) {
        this.receiptAmount = receiptAmount;
        return this;
    }

    public BigDecimal getBuyerPayAmount() {
        return buyerPayAmount;
    }

    public AlipayNotifyParam setBuyerPayAmount(BigDecimal buyerPayAmount) {
        this.buyerPayAmount = buyerPayAmount;
        return this;
    }

    public BigDecimal getRefundFee() {
        return refundFee;
    }

    public AlipayNotifyParam setRefundFee(BigDecimal refundFee) {
        this.refundFee = refundFee;
        return this;
    }

    public String getSubject() {
        return subject;
    }

    public AlipayNotifyParam setSubject(String subject) {
        this.subject = subject;
        return this;
    }

    public String getBody() {
        return body;
    }

    public AlipayNotifyParam setBody(String body) {
        this.body = body;
        return this;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public AlipayNotifyParam setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
        return this;
    }

    public Date getGmtPayment() {
        return gmtPayment;
    }

    public AlipayNotifyParam setGmtPayment(Date gmtPayment) {
        this.gmtPayment = gmtPayment;
        return this;
    }

    public Date getGmtRefund() {
        return gmtRefund;
    }

    public AlipayNotifyParam setGmtRefund(Date gmtRefund) {
        this.gmtRefund = gmtRefund;
        return this;
    }

    public Date getGmtClose() {
        return gmtClose;
    }

    public AlipayNotifyParam setGmtClose(Date gmtClose) {
        this.gmtClose = gmtClose;
        return this;
    }

    public String getFundBillList() {
        return fundBillList;
    }

    public AlipayNotifyParam setFundBillList(String fundBillList) {
        this.fundBillList = fundBillList;
        return this;
    }

    public String getPassbackParams() {
        return passbackParams;
    }

    public AlipayNotifyParam setPassbackParams(String passbackParams) {
        this.passbackParams = passbackParams;
        return this;
    }
}
